HandStack 서버 안정성 높이기

PM2로 ack 프로세스를 관리하고, 로그와 성능 지표의 역할을 구분합니다.

QCN

PM2가 관리하는 범위

  • PM2란 무엇일까요?
    • 원래 Node.js 애플리케이션을 위해 만들어진 프로세스 관리 도구지만, 임의의 실행 파일도 이름을 붙여 관리할 수 있습니다.
    • Linux에서 ack(.NET 실행 파일)를 명명된 프로세스로 등록해 시작/중지를 스크립트화하는 데 사용합니다.
    • 서버 활동을 기록하는 로그 관리 기능을 통합적으로 지원합니다.

PM2는 프로세스를 관리합니다. 업무 거래 성공 여부는 HandStack 로그와 실제 요청으로 확인합니다.

QCN

핸즈온: PM2 설치 및 실행 (1/2)

  • 목표: PM2를 설치하고 HandStack ack 프로세스를 실행해봅니다.

    1. PM2 전역 설치
    • 터미널에 아래 명령어를 입력하여 PM2를 설치합니다.
npm install -g pm2
QCN

핸즈온: PM2 설치 및 실행 (2/2) · 세부 1/2

    1. HandStack ack 프로세스를 PM2로 실행
    • --name 옵션으로 프로세스에 별명을 붙여 관리하기 쉽게 만듭니다.
    • 이 예제의 --no-autorestart는 PM2 자동 재시작을 끕니다. 장애 복구를 맡는 주체를 별도로 정하고 이중 재시작을 피합니다.
QCN

핸즈온: PM2 설치 및 실행 (2/2) · 세부 2/2

# ack 실행 파일 예시
pm2 start <ack 실행 파일 경로> --name ack --no-autorestart
- 모듈별 `task.ps1`, `task.bat`, `task.sh`로 이런 프로세스 제어를 자동화할 수 있습니다.
QCN

PM2 필수 명령어

  • 다음 명령어들로 실행 중인 서버 프로세스를 손쉽게 제어할 수 있습니다.
명령어 설명
pm2 list 현재 실행 중인 모든 프로세스 목록을 보여줍니다.
pm2 logs 모든 프로세스의 실시간 로그를 출력합니다.
pm2 restart [앱이름] 지정한 앱을 재시작합니다.
pm2 stop [앱이름] 지정한 앱을 중지시킵니다.
pm2 delete [앱이름] PM2 목록에서 지정한 앱을 삭제합니다.
QCN

핸즈온: 실시간 로그 확인하기 (1/3)

  • 목표: pm2 logs 명령어로 HandStack ack 프로세스의 활동을 실시간으로 관찰합니다.

  • HandStack 자체의 요청/응답 로그는 $HANDSTACK_HOME/log 아래 모듈별 파일에도 별도로 쌓이므로, pm2 logs와 함께 확인하면 좋습니다.

QCN

핸즈온: 실시간 로그 확인하기 (2/3)

  • pm2 logs 명령어 사용법
    • 특정 앱의 로그만 보거나, 최신 로그의 줄 수를 지정할 수 있습니다.
    • 기본 로그 스트림에서 새 출력을 관찰하고 Ctrl+C로 관찰만 종료합니다.
# ack 프로세스의 최신 로그 100줄을 실시간으로 확인
pm2 logs ack --lines 100
QCN

핸즈온: 실시간 로그 확인하기 (3/3)

  • 재시작 테스트
      1. 새 빌드로 ack 실행 파일을 교체합니다.
      1. pm2 restart ack 명령어를 실행합니다.
      1. pm2 logs ack로 정상 기동 로그가 다시 출력되는지 확인합니다.
QCN

잠깐, 구분해 보기

PM2에서 online이면 거래 API도 정상이라고 볼 수 있을까요?

QCN

서버의 건강 상태 확인, 모니터링

로그는 개별 사건의 원인을, 지표는 시간에 따른 상태 변화를 확인하는 데 사용합니다.

  • 모니터링의 목적
    • 시스템의 성능, 안정성, 가용성을 지속적으로 확인합니다.
    • 문제가 발생했을 때 신속하게 원인을 감지하고 대응하기 위함입니다.
QCN

무엇을 확인해야 할까? 주요 모니터링 지표 (1/2)

  • 백엔드 서버의 건강 상태를 파악하기 위한 핵심 지표들입니다.

  • 시스템 리소스

    • CPU 사용률: 서버의 두뇌가 얼마나 바쁘게 일하는지
    • 메모리 사용률: 작업 공간을 얼마나 사용하고 있는지
    • 네트워크 I/O: 데이터를 얼마나 주고받는지
    • 디스크 I/O: 하드디스크를 얼마나 읽고 쓰는지
QCN

무엇을 확인해야 할까? 주요 모니터링 지표 (2/2)

  • 애플리케이션 성능
    • API 응답 시간: 사용자의 요청에 얼마나 빨리 대답하는지
    • 에러율: 요청 중 실패하는 비율이 얼마나 되는지
    • 요청 처리량 (Throughput): 일정 시간 동안 얼마나 많은 요청을 처리하는지
QCN

핸즈온: PM2로 기본 모니터링하기 (1/2)

  • 목표: pm2 monit 명령어로 CLI 기반 대시보드에서 서버 상태를 관찰합니다.

    1. 모니터링 대시보드 실행
    • 터미널에 아래 명령어를 입력합니다.
pm2 monit
- 실행 중인 프로세스 목록과 함께 CPU, 메모리 사용량을 실시간으로 볼 수 있습니다.
QCN

핸즈온: PM2로 기본 모니터링하기 (2/2)

    1. 부하 테스트 및 관찰
    • Postman과 같은 도구로 서버 API에 반복적으로 요청을 보냅니다.
    • pm2 monit 대시보드에서 부하에 따라 CPU와 메모리 사용량이 어떻게 변하는지 관찰합니다.
QCN

더 나아가기: 전문 모니터링 도구 (1/2)

  • PM2의 모니터링은 간단한 현황 파악에 유용합니다.

  • 더 깊이 있고, 장기적인 데이터 분석을 위해서는 전문 도구를 사용합니다.

  • 주요 모니터링 도구 (개념)

    • Prometheus: 시계열 데이터를 수집하고 저장하는 데이터베이스
    • Grafana: Prometheus 등의 데이터를 가져와 시각적으로 아름다운 대시보드를 만드는 도구
    • ELK Stack: 로그 데이터를 수집(Logstash), 검색/분석(Elasticsearch), 시각화(Kibana)하는 통합 솔루션
QCN

더 나아가기: 전문 모니터링 도구 (2/2)

  • 이 도구들은 HandStack 서버 운영을 더욱 전문적으로 만들어줍니다.
QCN

운영 점검의 기준

  • 프로세스 시작·중지·재시작 주체를 하나로 정합니다.
  • pm2 logs와 HandStack 모듈 로그를 함께 확인합니다.
  • CPU·메모리 외에 응답 시간·오류율·처리량을 관측합니다.
QCN

발표: 첫 화면의 목표를 말한 뒤 핵심 개념과 예제로 진행합니다. 확인 질문 뒤에는 답할 시간을 주고, 마지막 완료 기준을 남겨 질문을 받습니다. 발표 구성 참고: MIT OpenCourseWare, Patrick Winston, How to Speak (2018), https://ocw.mit.edu/courses/res-tll-005-how-to-speak-january-iap-2018/pages/how-to-speak/

질문 후 잠시 기다립니다. 답이 없으면 앞에서 본 예제를 다시 가리킵니다. 확인할 답: 프로세스 생존과 서비스 응답은 별개입니다. 실제 요청·거래 오류·지연도 확인합니다. 다음 주제로 넘어가기 전에 차이를 청중의 표현으로 한 번 확인합니다.

질문을 받는 동안 이 확인 기준을 화면에 남깁니다. 청중이 자신의 업무에 적용할 다음 행동 하나를 고르게 합니다.